home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d18 / infop125.arc / PAGE_10.INC < prev    next >
Text File  |  1991-04-28  |  5KB  |  198 lines

  1. procedure page_10;
  2.  
  3. var
  4.   i : 1..63;
  5.   xbool1 : boolean;
  6.   xbool2 : boolean;
  7.   xbool3 : boolean;
  8.   xchar : char;
  9.   xword1: word;
  10.  
  11. procedure muxint(a : string; b : byte);
  12.  
  13. begin
  14. caption3(a);
  15.   with regs do begin
  16.     AH:=b;
  17.     AL:=0;
  18.     intr($2F, regs);
  19.     case AL of
  20.       $00 : writeln('no; OK to load');
  21.       $01 : writeln('no; not OK to load');
  22.       $FF : writeln('yes')
  23.       else
  24.         unknown('status', AL, 2)
  25.     end
  26.   end
  27. end;
  28.  
  29. begin (* procedure page_10 *)
  30.   with regs do
  31.     begin
  32.     AX:=$3800;
  33.     DS:=seg(country);
  34.     DX:=ofs(country);
  35.     MSDOS(regs);
  36.     end;
  37.   caption2('Multiplex interrupt ($2F)');
  38.   writeln;
  39.   muxint('DOS            ', $12);
  40. { muxint('DRIVER.SYS     ', $08);}
  41.   muxint('DISPLAY.SYS    ', $B0);
  42.   muxint('ANSI.SYS       ', $1A);
  43.   muxint('PRINT          ', $01);
  44.   muxint('ASSIGN         ', $06);
  45. (*
  46. **  Byte 12:12 p. 176C, Duncan, and many others, all of whom mistakenly give
  47. **  AH = $02
  48. *)
  49.   muxint('SHARE          ', $10);
  50. (*  muxint('FASTOPEN       ', $xx);*)
  51.   muxint('NLSFUNC        ', $14);
  52.   muxint('GRAFTABL       ', $B0);
  53. (*  muxint('KEYB           ', $B8);*)
  54.   muxint('NETBIOS append ', $87);
  55.   muxint('NETBIOS network', $88);
  56. (*  Byte 12:12 p. 180.  PC Tech Journal 3:11 p.104 gives AH = $BB  *)
  57.   muxint('SHELLB         ', $19);
  58.   muxint('XMA2EMS        ', $1B);
  59.   muxint('APPEND         ', $B7);
  60.   caption3('CDROM          ');
  61.   with regs do
  62.     begin
  63.     AX:=$1500;
  64.     BX:=0;
  65.     Intr($2F, regs);
  66.     case AL of
  67.       $00 : writeln('no; OK to load');
  68.       $01 : writeln('no; not OK to load');
  69.       $FF : begin
  70.             Write('yes');
  71.             caption3('on drives');
  72.             Write(Chr(CX + 65));
  73.             caption3('through');
  74.             Write(Chr(CX + BX + 65 - 1))
  75.             end;
  76.     end;
  77.     end;
  78.   caption3('Network        ');
  79.   with regs do
  80.     begin
  81.     AX:=$B800;
  82.     Intr($2F, regs);
  83.     if AL = 0 then
  84.       Writeln('no; OK to load')
  85.     else
  86.       begin
  87.       Write('yes');
  88.       caption3('this is a');
  89.       if BX and $0040 = $40 then
  90.         Writeln('server')
  91.       else
  92.         if BX and $0004 = $4 then
  93.           Writeln('messenger')
  94.         else
  95.           if BX and $0080 = $80 then
  96.             Writeln('receiver')
  97.           else
  98.             if BX and $0008 = $8 then
  99.               Writeln('redirector');
  100.       end;
  101.     end;
  102.   caption3('JP Software''s 4DOS');
  103.   with regs do
  104.     begin
  105.     AX:=$D44D;
  106.     BX:=0;
  107.     Intr($2F, regs);
  108.     if AX <> $44DD then
  109.       Writeln('no')
  110.     else
  111.       begin
  112.       Writeln('yes');
  113.       caption3('  version');
  114.       xword1:=BH;
  115.       Write(BL, Chr(country[9]));
  116.       zeropad(xword1);
  117.       caption3('shell no.');
  118.       Writeln(DL);
  119.       caption3('  4DOS PSP segment');
  120.       Write(hex(CX, 4))
  121.       end
  122.     end;
  123.   window(1 + twidth div 2, 3, twidth, tlength - 2);
  124.   if osmajor >=4 then
  125.     with regs do
  126.       begin
  127.       AX:=$B700;
  128.       Intr($2F, regs);
  129.       if AL=$FF then
  130.         begin
  131.         caption2('APPEND ');
  132.         AX:=$B706;
  133.         Intr($2F, regs);
  134.         if (BX and 1) = 1 then
  135.           Write('enabled ');
  136.         if (BX and $2000) = $2000 then
  137.           Write('/PATH ');
  138.         if (BX and $4000) = $4000 then
  139.           Write('/E ');
  140.         if (BX and $8000) = $8000 then
  141.           Write('/X');
  142.         Writeln;
  143.         caption2('APPEND path');
  144.         AX:=$B704;
  145.         Intr($2F, regs);
  146.         while Mem[ES:DI] <> 0 do
  147.           begin
  148.           Write(Chr(mem[ES:DI]));
  149.           Inc(DI)
  150.           end;
  151.         Writeln
  152.         end
  153.       end;
  154.   with regs do begin
  155.     AX:=$0100;
  156.     intr($2F, regs);
  157.     if AL = $FF then begin
  158.       caption2('PRINT queue');
  159.       AX:=$0104;
  160.       intr($2F, regs);
  161.       xbool1:=true;
  162.       xbool2:=false;
  163.       repeat
  164.         xchar:=char(mem[DS : SI]);
  165.         if xchar > #0 then begin
  166.           if xbool1 then begin
  167.             xbool1:=false;
  168.             writeln;
  169.             window(2 + twidth div 2, wherey + hi(windmin), twidth, tlength - 2)
  170.           end;
  171.           pause2;
  172.           if endit then
  173.             Exit;
  174.           write(xchar);
  175.           i:=1;
  176.           xbool3:=false;
  177.           repeat
  178.             xchar:=char(mem[DS : SI + i]);
  179.             if xchar > #0 then begin
  180.               write(xchar);
  181.               inc(i)
  182.             end else begin
  183.               writeln;
  184.               xbool3:=true
  185.             end
  186.           until xbool3;
  187.           inc(SI, 64)
  188.         end else
  189.           xbool2:=true
  190.       until xbool2;
  191.       if xbool1 then
  192.         writeln('(empty)');
  193.       AX:=$0105;
  194.       intr($2F, regs)
  195.     end
  196.   end
  197. end;
  198.